Telegram Group & Telegram Channel
😎 Каждый бэкенд-инженер должен знать, как обрабатывать платежи

🍕 Проектируем ли мы сервис доставки еды или заказ такси, или любую другую платную услугу - везде можно углубиться в логику обработки платежа.
Его happy path, сбои.

‼️ В недавно вышедшей habr статье подробно расписаны состояния платежа и алгоритмы переходов.

Типовые статусы платежа
Happy path: Инициирован, Обрабатывается, Успешно завершен
Сбойные: Не выполнен, Ожидает повторной попытки, Возвращен, Отменен

🗓 Статусы предлагается менять в таблице с режимом записи append-only. Так чтобы видели всю историю изменений.

2️⃣ Проблемы с обработкой платежа делим на 2 типа:
1) Временные - когда можно сделать retry. К примеру, сетевая ошибка.
2) Существенные - не делаем retry. К примеру, недостаточно средств.
Наш главный сервис должен иметь логику по распознаванию таких проблем.

Прикручиваем соответственно две очереди:
1) Retriable
2) Dead Letter Queue

🗝 Exactly-once Delivery
Если делаем повторную отправку из-за сетевой ошибки( ), есть риск двойного списания🥺
К примеру, в ту сторону запрос с платежом прошёл. Обратно ответ не вернулся. А платёж успел осуществиться🤦
=> Поэтому приправляем нашу систему ключом идемпотентности реализуя тем самым семантику доставки exactly-once.

🔥 - Хорошая выжимка. Ожидаю больше подобных рецензий
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/system_design_world/252
Create:
Last Update:

😎 Каждый бэкенд-инженер должен знать, как обрабатывать платежи

🍕 Проектируем ли мы сервис доставки еды или заказ такси, или любую другую платную услугу - везде можно углубиться в логику обработки платежа.
Его happy path, сбои.

‼️ В недавно вышедшей habr статье подробно расписаны состояния платежа и алгоритмы переходов.

Типовые статусы платежа
Happy path: Инициирован, Обрабатывается, Успешно завершен
Сбойные: Не выполнен, Ожидает повторной попытки, Возвращен, Отменен

🗓 Статусы предлагается менять в таблице с режимом записи append-only. Так чтобы видели всю историю изменений.

2️⃣ Проблемы с обработкой платежа делим на 2 типа:
1) Временные - когда можно сделать retry. К примеру, сетевая ошибка.
2) Существенные - не делаем retry. К примеру, недостаточно средств.
Наш главный сервис должен иметь логику по распознаванию таких проблем.

Прикручиваем соответственно две очереди:
1) Retriable
2) Dead Letter Queue

🗝 Exactly-once Delivery
Если делаем повторную отправку из-за сетевой ошибки( ), есть риск двойного списания🥺
К примеру, в ту сторону запрос с платежом прошёл. Обратно ответ не вернулся. А платёж успел осуществиться🤦
=> Поэтому приправляем нашу систему ключом идемпотентности реализуя тем самым семантику доставки exactly-once.

🔥 - Хорошая выжимка. Ожидаю больше подобных рецензий

BY System Design World




Share with your friend now:
tg-me.com/system_design_world/252

View MORE
Open in Telegram


System Design World Telegram | DID YOU KNOW?

Date: |

Traders also expressed uncertainty about the situation with China Evergrande, as the indebted property company has not provided clarification about a key interest payment.In economic news, the Commerce Department reported an unexpected increase in U.S. new home sales in August.Crude oil prices climbed Friday and front-month WTI oil futures contracts saw gains for a fifth straight week amid tighter supplies. West Texas Intermediate Crude oil futures for November rose $0.68 or 0.9 percent at 73.98 a barrel. WTI Crude futures gained 2.8 percent for the week.

For some time, Mr. Durov and a few dozen staffers had no fixed headquarters, but rather traveled the world, setting up shop in one city after another, he told the Journal in 2016. The company now has its operational base in Dubai, though it says it doesn’t keep servers there.Mr. Durov maintains a yearslong friendship from his VK days with actor and tech investor Jared Leto, with whom he shares an ascetic lifestyle that eschews meat and alcohol.

System Design World from in


Telegram System Design World
FROM USA